const { client, FACE_LIBRARY_CONFIG, FACE_RECOGNITION_CONFIG, isConfigValid } = require('./config/tencent');

async function testFaceAPI() {
  console.log('=== 腾讯云人脸识别API测试 ===');
  
  // 1. 检查配置
  console.log('\n1. 配置检查:');
  if (isConfigValid()) {
    console.log('✅ 配置有效');
    console.log('  GroupId:', FACE_LIBRARY_CONFIG.groupId);
    console.log('  GroupName:', FACE_LIBRARY_CONFIG.groupName);
    console.log('  SimilarityThreshold:', FACE_RECOGNITION_CONFIG.similarityThreshold);
  } else {
    console.log('❌ 配置无效');
    return;
  }
  
  try {
    // 2. 检查人脸库是否存在
    console.log('\n2. 检查人脸库:');
    const groupParams = {
      "GroupId": FACE_LIBRARY_CONFIG.groupId
    };
    
    try {
      const groupResult = await client.GetGroupInfo(groupParams);
      console.log('✅ 人脸库存在:', groupResult);
    } catch (error) {
      if (error.code === 'ResourceNotFound') {
        console.log('❌ 人脸库不存在，需要创建');
        console.log('建议: 调用 /zjx/create-face-group 接口创建人脸库');
      } else {
        console.log('❌ 检查人脸库失败:', error.message);
      }
    }
    
    // 3. 获取人脸库中的人脸数量
    console.log('\n3. 检查人脸库中的人脸:');
    try {
      const personListParams = {
        "GroupId": FACE_LIBRARY_CONFIG.groupId
      };
      const personListResult = await client.GetPersonList(personListParams);
      console.log('✅ 人脸库中的人脸:', personListResult);
      
      if (personListResult.PersonInfos && personListResult.PersonInfos.length > 0) {
        console.log(`✅ 人脸库中有 ${personListResult.PersonInfos.length} 个人脸`);
        personListResult.PersonInfos.forEach((person, index) => {
          console.log(`  ${index + 1}. PersonId: ${person.PersonId}, PersonName: ${person.PersonName}`);
        });
      } else {
        console.log('❌ 人脸库为空，需要先注册人脸');
        console.log('建议: 调用 /zjx/face-register 接口注册人脸');
      }
    } catch (error) {
      console.log('❌ 获取人脸列表失败:', error.message);
    }
    
    // 4. 测试人脸检测API
    console.log('\n4. 测试人脸检测API:');
    console.log('✅ 人脸检测API可用（需要提供base64图片数据）');
    
  } catch (error) {
    console.log('❌ API测试失败:', error.message);
    console.log('错误代码:', error.code);
    console.log('错误详情:', error);
  }
  
  console.log('\n=== 测试完成 ===');
}

// 运行测试
testFaceAPI().catch(console.error);
